export default{
  /**
   * selectList:参照默认选中列表，单选时为obj对象
   *
   * type:1：单选  2：双选  3：非参照
   */
  props:{
    selectList:{
      default:null,
      type: Array || Object
    },
    type:{
      type:Number,
      default:3
    }
  },
  data () {
    return{
      selectData : [],
      multiple : false
    }
  },
  mounted(){
    this.initReference();
  },
  methods:{
    /**初始化参照*/
    initReference(){
      //单选，默认选中
      if(this.type == 1 && this.selectList != undefined && this.selectList != null &&  this.selectList != {}) {
        this.$nextTick(() => {
          this.$refs.mainTable.setCurrentRow(this.selectList);
        })
        return;
      }

      if(this.type == 2){
        //多选，默认选中
        this.$nextTick(() => {
          if(this.selectList!=null && this.selectList != undefined && this.selectList.length > 0){
            this.selectList.forEach(item => {
              /**
               * 方法执行后会触发handleSelectionChange
               */
              this.$refs.mainTable.toggleRowSelection(item,true);
            })
          }
          this.data = Object.assign([],this.data)
        })
      }

    },
    /**获取参照 **/
    getReferenceInfo(){
      if(this.type != 1)
        return this.selectData;
      else{
        if(this.selectData.length > 0){
          return this.selectData[0]
        }
        return {}
      }
    },
    /** 多选框选中数据 */
    handleSelectionChange(selection) {
      if(this.type !=1 ){
     //   console.log(selection)
       // console.log("多选选中了")
        this.selectData = selection
        this.multiple = !selection.length;
      }
    },
    /** 单选框选中数据 */
    handleCurrentChange(selection){
      if(this.type == 1){
        //console.log(selection)
      //  console.log("单选选中了")
        this.selectData = [selection]
        this.multiple = !this.selectData.length;
      }
    },

    /** 单选且选中过。单选的话如果数据更新之后表格不会保留之前选中的数据，需要手动再次选中*/
    handleCurrentChangeBugRepair(){
      if(this.type == 1 && this.selectData.length > 0){
        this.$refs.mainTable.setCurrentRow(this.selectData[0]);
      }
    }
  }
}
